﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Devart.Data.PostgreSql;

namespace Sistema_financiero.ABM
{
    public partial class frmABMLocalidades : Form
    {
        string idSeleccionado;
        bool modificacion;

        public frmABMLocalidades()
        {
            InitializeComponent();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            btnNuevo.Visible = false;
            btnNAceptar.Visible = true;
            btnNCancelar.Visible = true;
            label1.Visible = true;
            textBox1.Visible = true;
            textBox1.Text = "";
            label2.Visible = true;
            label3.Visible = true;
            cbProvincias1.Visible = true;
            cbDepartamentos1.Visible = true;
        }

        private void btnNAceptar_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                if (modificacion)
                {

                    string sql = "UPDATE \"Localidad\" SET descripcion = '" + textBox1.Text + "', id_departamento = " + Convert.ToString(cbDepartamentos1.SelectedValue) + " WHERE id_cond_sellado = " + idSeleccionado;
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                else
                {
                    string sql = "INSERT INTO \"Localidad\" VALUES ( default, '" + textBox1.Text + "'," + Convert.ToString(cbDepartamentos1.SelectedValue) + ")";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                btnNuevo.Visible = true;
                btnNAceptar.Visible = false;
                btnNCancelar.Visible = false;
                label1.Visible = false;
                textBox1.Visible = false;
                label2.Visible = false;
                label3.Visible = false;
                cbProvincias1.Visible = false;
                cbDepartamentos1.Visible = false;
                Busqueda();

            }
            else
            {
                MessageBox.Show("Complete todos los campos");
            }
        }

        private void btnNCancelar_Click(object sender, EventArgs e)
        {
            btnNuevo.Visible = true;
            btnNAceptar.Visible = false;
            btnNCancelar.Visible = false;
            label1.Visible = false;
            textBox1.Visible = false;
            modificacion = false;
            label2.Visible = false;
            label3.Visible = false;
            cbProvincias1.Visible = false;
            cbDepartamentos1.Visible = false;
        }

        private void frmABMCondicionSellado_Load(object sender, EventArgs e)
        {
            label1.Visible = false;
            textBox1.Visible = false;
            btnNAceptar.Visible = false;
            btnNCancelar.Visible = false;
            label2.Visible = false;
            label3.Visible = false;
            cbProvincias1.Visible = false;
            cbDepartamentos1.Visible = false;
            Busqueda();
            modificacion = false;

            cbProvincias1.DataSource = Sistema_financiero.Entidades.Provincia.Obtener_Provincias();
            cbProvincias1.DisplayMember = "Descripcion";
            cbProvincias1.ValueMember = "ID";

            cbDepartamentos1.DataSource = Entidades.Departamento.Obtener_Departamentos(Convert.ToInt32( cbProvincias1.SelectedValue));
            cbDepartamentos1.DisplayMember = "Descripcion";
            cbDepartamentos1.ValueMember = "ID";

            List<Entidades.Provincia> listaTI = new List<Sistema_financiero.Entidades.Provincia>();
            listaTI.Add(new Sistema_financiero.Entidades.Provincia(0, "TODOS"));
            foreach (Entidades.Provincia p in Entidades.Provincia.Obtener_Provincias())
            {
                listaTI.Add(p);
            }
            cbProvincias2.DataSource = listaTI;
            cbProvincias2.DisplayMember = "Descripcion";
            cbProvincias2.ValueMember = "ID";

            List<Entidades.Departamento> listaD = new List<Sistema_financiero.Entidades.Departamento>();
            listaD.Add(new Sistema_financiero.Entidades.Departamento(0, "TODOS"));
            foreach (Entidades.Departamento d in Entidades.Departamento.Obtener_Departamentos(Convert.ToInt32(cbProvincias1.SelectedValue)))
            {
                listaD.Add(d);
            }
            cbDepartamentos2.DataSource = listaD;
            cbDepartamentos2.DisplayMember = "Descripcion";
            cbDepartamentos2.ValueMember = "ID";
        }
        private void Busqueda()
        {
            this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
            string descripcion = tbx_Descripcion.Text;
            PgSqlDataAdapter adpt;
            if (Convert.ToString(cbProvincias2.SelectedValue) != null && Convert.ToInt32(cbProvincias2.SelectedValue) != 0)
            {
                if (Convert.ToString(cbDepartamentos2.SelectedValue) != null && Convert.ToInt32(cbDepartamentos2.SelectedValue) != 0)
                {
                    adpt = new PgSqlDataAdapter("SELECT * FROM VistaLocalidades WHERE id_provincia = " + Convert.ToString(cbProvincias2.SelectedValue) + " and id_departamento = " + Convert.ToString(cbDepartamentos2.SelectedValue) + " and descripcion like '" + descripcion + "%'", frm_Menu.conexion);
                }
                else
                {
                    adpt = new PgSqlDataAdapter("SELECT * FROM VistaLocalidades WHERE id_provincia = " + Convert.ToString(cbProvincias2.SelectedValue) + " and descripcion like '" + descripcion + "%'", frm_Menu.conexion);
                }
            }
            else
            {
                adpt = new PgSqlDataAdapter("SELECT * FROM VistaLocalidades WHERE descripcion like '" + descripcion + "%'", frm_Menu.conexion);
            }
            
            DataSet dts = new DataSet();

            adpt.Fill(dts, "nombreTabla");
            dgv_Buscar.DataSource = dts.Tables["nombreTabla"];

            dgv_Buscar.Columns[2].Visible = false;
            dgv_Buscar.Columns[4].Visible = false;
            dgv_Buscar.Refresh();

            this.Cursor = System.Windows.Forms.Cursors.Default;
        }

        private void btnVolver_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnQuitar_Click(object sender, EventArgs e)
        {
            if (dgv_Buscar.RowCount != 0)
            {
                string id = Convert.ToString(dgv_Buscar[0, dgv_Buscar.CurrentRow.Index].Value);

                DialogResult resultado = MessageBox.Show("¿Seguro desea elminar?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (resultado == DialogResult.Yes)
                {
                    string sql = "DELETE FROM \"Condicion_Sellado\" WHERE id_cond_sellado = " + id;
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                    Busqueda();
                }

            }

        }

        private void tbx_Descripcion_TextChanged(object sender, EventArgs e)
        {
            Busqueda();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (dgv_Buscar.RowCount != 0)
            {
                idSeleccionado = Convert.ToString(dgv_Buscar[0, dgv_Buscar.CurrentRow.Index].Value);
                textBox1.Text = Convert.ToString(dgv_Buscar[1, dgv_Buscar.CurrentRow.Index].Value);
                modificacion = true;
                btnNuevo.Visible = false;
                btnNAceptar.Visible = true;
                btnNCancelar.Visible = true;
                label1.Visible = true;
                textBox1.Visible = true;
            }
        }

        private void cbProvincias1_SelectionChangeCommitted(object sender, EventArgs e)
        {
            cbDepartamentos1.DataSource = Entidades.Departamento.Obtener_Departamentos(Convert.ToInt32(cbProvincias1.SelectedValue));
            cbDepartamentos1.DisplayMember = "Descripcion";
            cbDepartamentos1.ValueMember = "ID";
        }

        private void cbProvincias2_SelectionChangeCommitted(object sender, EventArgs e)
        {

            Busqueda();
            List<Entidades.Departamento> listaD = new List<Sistema_financiero.Entidades.Departamento>();
            listaD.Add(new Sistema_financiero.Entidades.Departamento(0, "TODOS"));
            foreach (Entidades.Departamento d in Entidades.Departamento.Obtener_Departamentos(Convert.ToInt32(cbProvincias2.SelectedValue)))
            {
                listaD.Add(d);
            }
            cbDepartamentos2.DataSource = listaD;
            cbDepartamentos2.DisplayMember = "Descripcion";
            cbDepartamentos2.ValueMember = "ID";
        }

        private void cbDepartamentos2_SelectionChangeCommitted(object sender, EventArgs e)
        {
            Busqueda();
        }
    }
}
